/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocios;

import Gestores.DtoObjects.PagoCredencialDTO;
import Gestores.DtoObjects.PagoMatriculaDTO;
import Gestores.Entidades.EntidadPagoCredencial;
import Gestores.Entidades.EntidadPagoMatricula;
import Gestores.Factory.FactoryClass;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Lion
 */
public class PagoMatriculaNegocio {

    private PagoMatriculaDTO dto;
    private EntidadPagoMatricula entidad;

    public PagoMatriculaNegocio() {
        this.dto = FactoryClass.getPagoMatriculaInstance();
        this.entidad = new EntidadPagoMatricula();
    }

    public void insertarPagoMatricula(String ci, String descrip) throws Exception {
        int cod = Integer.valueOf(ci);
        entidad = new EntidadPagoMatricula(0, cod, descrip, 35, null, true);
        if (buscarPorCi(cod).isEmpty()) {
            dto.insertar(entidad);
        } else {
            throw new Exception("El interezado ya pago matricula");
        }
    }

    public void eliminacionLogica(String ci, String id) throws Exception {

        int i = Integer.valueOf(ci);
        int c = Integer.valueOf(id);
        EntidadPagoMatricula cre = new EntidadPagoMatricula(c, i, " ", 0, null, true);
        dto.eliminacionLogica(cre);

    }

    public ArrayList<Object> buscarPorCi(int ci) throws Exception {
        if (ci < 0) {
            throw new Exception("El formato del C.I. del Afiliado no es Correcto.\n Formato: Numero Entero Positivo ");
        } else {
            return dto.buscarPorCi(ci);
        }
    }

    public DefaultTableModel tabularDatosBusquedaId(ArrayList<Object> listaDatos) {
        String[] campos = new String[]{entidad.ColumNameId(), entidad.ColumNameDescrip(),
            entidad.ColumNameMonto(), entidad.ColumNameEstado(), entidad.ColumNameFecha()};
        DefaultTableModel model = new DefaultTableModel(campos, 0);


        for (int i = 0; i < listaDatos.size(); i++) {
            entidad = (EntidadPagoMatricula) listaDatos.get(i);
            if (entidad.isEstado()) {
                Object[] camposEntidad = new Object[]{entidad.getId(), entidad.getDescripcion(),
                    entidad.getMonto(), entidad.isEstado(), entidad.getFecha()};
                model.addRow(camposEntidad);
            }
        }

        return model;
    }

    private boolean esLetra(char caracter) {
        if (((caracter >= 'A') && (caracter <= 'Z')) || ((caracter >= 'a') && (caracter <= 'z'))) {
            return true;
        } else {
            return false;
        }
    }

    private boolean esNumero(char caracter) {
        if ((caracter >= '0') && (caracter <= '9')) {
            return true;
        } else {
            return false;
        }
    }
}
